import { WebSocketServer } from 'ws';
import MockJS from 'mockjs'

// 创建服务端套接字对象，绑定监听端口
const wss = new WebSocketServer({ port: 8080 });

// 监听 connection 事件，等待客户端的连接
wss.on('connection', function connection(ws) {
  // 监听 error 事件，发生客户端连接异常时执行
  ws.on('error', console.error);

  // 监听 message 事件，用于接收客户端发送的消息
  ws.on('message', function message(data) {
    console.log('received: %s', data);
  });

  // // 向客户端发送消息
  // ws.send('欢迎登录 Socket 服务器...');

  const intervalMessage = () => {
    // 模拟向客户端实时发送的订单数据
    const order = {
      id: MockJS.mock('@id'),
      price: MockJS.mock('@float(100, 1000, 2)'),
      phone: MockJS.mock('@string("number", 11)'),
      address: MockJS.mock('@county(true)'),
      contact: MockJS.mock('@cname()'),
      createdAt: MockJS.mock('@datetime("yyyy-MM-dd HH:mm:ss")'),
    }
    // 将模拟的订单数据发送到客户端
    ws.send(JSON.stringify(order))

    // 间隔时间
    const time = Math.floor(Math.random() * 5000) + 5000

    setTimeout(intervalMessage, time)
  }

  intervalMessage()
});
